' This program exported from BASIC Anywhere Machine (Version [5.2.3].[2023.12.16.16.28]) on 2024.04.20 at 18:22 (Coordinated Universal Time)
' This port and mod by Charlie Veniot
' of an sVB (aka Small Visual Basic) program by "Small Visual Basic is An Educational Programming Language
' as posted at https://www.facebook.com/groups/2057165187928233/posts/3618985041746232/?comment_id=3619152395062830&reply_comment_id=3619159728395430)
r# = _PI / 180
DECLARE SUB DrawShape( ox, oy )
DEF FN rndrgb(v%) = _RGB( INT( RND * v% ), INT( RND * v% ), INT( RND * v% ) )
SCREEN _NEWIMAGE( 1240, 620, 27)
_ALERT( "At any time, pause the program by clicking/touching the screen.\n\n" _
+ "At completion of a drawing cycle, the next new drawing cycle begins after 5 seconds." )
➔DrawCycleStart:
COLOR , rndrgb( 55 )
r1step% = 1 + INT( RND * 23 )
r1start% = 1 + INT( RND * 49 )
CLS
imax% = 3 + INT(RND*18)
FOR i = 1 TO imax%
COLOR rndrgb( 256 )
CALL DrawShape( 190 + INT( RND * ( 1239 - 380 ) ) , 10 + INT( RND * 231 ) )
NEXT i
FOR i = 0 TO 5
CIRCLE (12,12),12-(i*2), IFF(i MOD 2 = 0, &hffffff, &hff0000), , , ,T
CIRCLE (12,12),11-(i*2), IFF(i MOD 2 = 0, &hffffff, &hff0000), , , ,T
IF _MOUSEBUTTON THEN WHILE _MOUSEBUTTON : WEND
SLEEP 1
NEXT i
IF _MOUSEBUTTON THEN WHILE _MOUSEBUTTON : WEND
GOTO ➔DrawCycleStart
Sub DrawShape( ox, oy )
DIM c%
oy = oy + 180
FOR r1 = r1start% TO 50 STEP r1step%
c% = 0
FOR a = -_PI TO _PI STEP r#
x = a / r#
y = r1 * SIN( a ) * COS( 3 * a )
PLOT( ox + x, oy - y)
PLOT( ox + x, oy + y)
PLOT( ox - y, oy + x)
PLOT( ox + y, oy + x)
PLOT( ox - x, oy - y)
PLOT( ox - x, oy + y)
PLOT( ox - y, oy - x)
PLOT( ox + y, oy - x)
c% = c% + 1
IF c% MOD INT(125/r1step%) = 0 THEN SLEEP 0.001
IF _MOUSEBUTTON THEN WHILE _MOUSEBUTTON : WEND
NEXT a
NEXT r1
END SUB